home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
thinkref
/
archive
/
THINKPascalUH2.1.sea
/
THINKPas Univ Hdr 2.1
/
Interfaces
/
RTLib.p
< prev
next >
Wrap
Text File
|
1995-09-12
|
2KB
|
118 lines
{ Converted with MPW2TPas Tuesday, September 12, 1995 9:24:29 PM }
{
File: RTLib.p
Copyright: © 1983-1993 by Apple Computer, Inc.
All rights reserved.
Version: System 7.1 for ETO #11
Created: Tuesday, March 30, 1993 18:00
}
UNIT RTLib;
INTERFACE
{$IFC UNDEFINED UsingRTLib}
{$SETC UsingRTLib := 1}
USES
ConditionalMacros, Types;
CONST
{
Error Codes
}
eRTNoErr = 0;
eRTBadVersion = 2;
eRTInvalidOp = 4;
eRTInvalidJTPtr = 6;
{
Action Codes
}
kRTSysErr = 0;
kRTRetry = 1;
kRTContinue = 2;
{
Runtime Operations
}
kRTGetVersion = 10;
kRTGetVersionA5 = 11;
kRTGetJTAddress = 12;
kRTGetJTAddressA5 = 13;
kRTSetPreLoad = 14;
kRTSetPreLoadA5 = 15;
kRTSetSegLoadErr = 16;
kRTSetSegLoadErrA5 = 17;
kRTSetPostLoad = 18;
kRTSetPostLoadA5 = 19;
kRTSetPreUnload = 20;
kRTSetPreUnloadA5 = 21;
kRTPreLaunch = 22;
kRTPostLaunch = 23;
{
Version Definitions
}
kVERSION32BIT = $FFFF;
kVERSION16BIT = $0000;
TYPE
{
RTState Definition
}
RTState = RECORD
fVersion: INTEGER; { run-time version }
fSP: Ptr; { SP: &-of user return address }
fJTAddr: Ptr; { PC: &-of called jump table entry }
fRegisters: Array[0..14] of LONGINT; { registers D0-D7 and A0-A6 when }
{ _LoadSeg was called }
fSegNo: INTEGER; { segment number }
fSegType: ResType; { segment type (normally 'CODE') }
fSegSize: LONGINT; { segment size }
fSegInCore: BOOLEAN; { true if segment is in memory }
fReserved1: BOOLEAN; { (reserved for future use) }
fOSErr: OSErr; { error number }
fReserved2: LONGINT; { (reserved for future use) }
END;
RTStatePtr = ^RTState;
{
Runtime Parameter Block
}
RTParam = (RTGetVersionParam, RTGetJTAddrParam, RTSetSegLoadParam);
RTPB = RECORD
fOperation: INTEGER; { operation }
fA5: Ptr; { A5-world }
CASE RTParam OF
RTGetVersionParam:
(fVersion: INTEGER); { run-time version (returned) }
RTGetJTAddrParam:
(fJTAddr: Ptr; { ptr to jt entry }
fCodeAddr: Ptr); { code address w/i jt entry (returned) }
RTSetSegLoadParam:
(fUserHdlr: Ptr; { ptr to user handler }
fOldUserHdlr: Ptr); { ptr to old user handler (returned) }
END;
RTPBPtr = ^RTPB;
FUNCTION Runtime (runtime_parms: RTPBPtr): OSErr;
{$ENDC} { UsingRTLib }
IMPLEMENTATION
END.